package fr.afcepf.atod20.frameWork.formBeans;

import java.lang.reflect.Field;
import java.util.Map;

public class MyBeanPopulate {

	/**
	 * Methode : peupler un objet quelconque à partir d'une Map.
	 * 
	 * @param obj
	 * @param param
	 * @throws IllegalAccessException
	 * @throws IllegalArgumentException
	 */
	public void populateBean(Object objet, Map<String, String> param)
			throws IllegalArgumentException, IllegalAccessException {
		// On récupère l'objet en parametre.
		@SuppressWarnings("rawtypes")
		Class classObject = objet.getClass();
		// On récupère les champs déclarés dans le tableau de champs.
		Field[] fields = classObject.getDeclaredFields();
		// Pour toutes les valeurs du tableau de champs.
		for (int i = 0; i < fields.length; i++) {
			// On déclare une variable locale pour le nom du champ.
			String nomChamps = fields[i].getName();
			// L'objet reflété interdit l'acces au controle quand il est
			// utilisé.
			fields[i].setAccessible(true);
			// La nouvelle valeur est automatiquement renseigné si le champ a un
			// type primitif.
			fields[i].set(objet, param.get(nomChamps));
		}

	}

}
